﻿/*
 合成复用原则又称为组合/聚合复用原则；
 尽量使用对象组合，而不是继承来达到复用；

-------------------------
某种程度上 继承有问题：

破坏了系统的封装性，基类发生了改变，子类的实现也会发生改变；
子类如果不需要基类中的方法，那么系统耦合性就开始变高；
继承是静态的，不能在程序运行时发生改变；
 */
using 合成复用原则;

Console.WriteLine("合成复用原则!");

//需求：汽车案例，有问题的案例见img文件夹下的图片
IColor color = new Green();
Car car = new QyCar();//DdCar
car.Run(color);

// has  案例：  比如鸟，大雁有翅膀  使用合成复用
// as  案例：学生是人，  使用继承


// 类之间的关系：泛化（实际上就是继承）、实现、组合、聚合、关联、依赖；突然3W的基本

